Spectral gamut mapping based on a colorimetric gamut mapping

ABSTRACT

Mapping spectral colors in an Interim Connection Space (ICS) of a full spectral space based on a colorimetric gamut map in a color space is provided. A spectral color value in the ICS is accessed, and the spectral color value is transformed into a calorimetric color value in the color space. The calorimetric color value is mapped into mapped calorimetric color value in a first subspace of the ICS. Mapping the colorimetric color value includes gamut-mapping the calorimetric color value using the calorimetric gamut map, followed by identifying the color space with the first subspace. An intersection of a spectral gamut in the ICS and an affine subspace characterized by the mapped colorimetric color value is determined, and the spectral color value is projected onto the intersection. The first subspace is an orthogonal complement of a null space of a transformation from the ICS to the color space.

BACKGROUND

1. Field of the Invention

This invention pertains to the use of spectral gamut mapping, and inparticular, pertains to spectral gamut mapping based on a colorimetricgamut mapping.

2. Related Background Art

There is an increasing trend for color imaging applications to processand utilize spectral data, and/or to perform color processing in aspectral color space. For example, it has become common to characterizecolor devices such as scanners, cameras, printers and displays, in termsof their spectral responsively, such as by obtaining a so-calledspectral device profile. Once a spectral characterization of a device isobtained, operations such as transforming color data from a sourcedevice to a destination device, gamut mapping, etc., can be performed inthe full spectral space.

As another example, some modem image capture devices can capture colorimage data in spectral or extended color spaces. In this regard, the useof spectral data such as spectral reflectance of objects and spectralpower distribution of illuminants promises to yield even more advantagesin the near future. Ultimately, one goal of spectral color reproductionis to produce color reproductions with remarkably high color fidelity,perhaps even matching the original scene on the spectral level. In thecase of reflective objects, for example, a reproduction with a spectralmatch would have the same color as the original object under anyilluminant.

Spectral characterization of color devices, and development ofmulti-spectral devices such as multi-spectral cameras and multi-spectralprinters, could form the basis of a spectral color management workflowthat can have very useful applications in everyday consumer products.For example, such technologies could allow online shoppers to printtheir own “virtual swatches” of fabrics, as detailed in the paper“Answering Hunt's Web Shopping Challenge: Spectral Color Management fora Virtual Swatch” by Rosen et al., Proceedings of the IS&T/SID 9^(th)Color Imaging Conference, pp. 267-272. Another application of spectralcolor management in computer aided design/computer aided manufacturing(CAD/CAM) applications allows manufacturers to visualize and demonstratepreliminary design ideas by simulation, before actually building acostly prototype.

While the use of spectral data can provide many advantages, such asreducing metamerism, using spectral data presents some challenges in thecontext of gamut mapping. As in the calorimetric case where differentdevices have different colorimetric gamuts, in the spectral case,different devices have different spectral gamuts. Spectral colorreproduction requires accommodating the difference in spectral gamuts. Astandard approach to this problem in the calorimetric case is gamutmapping. Extending conventional, calorimetric gamut mapping algorithmsto spectral gamut mapping algorithms however requires overcoming somedifficulties. In particular, unlike conventional color spaces such asCIELAB and CIECAM02, there is no appearance attributes such as lightnessor chroma to establish mapping direction. A basic question for spectralgamut mapping is how to design algorithms that do not require theseappearance attributes.

Another difficulty comes from the high dimensionality of the spectraldata. A known approach to this problem is the construction of InterimConnection Spaces (ICSs), which are of lower dimension than the fullspectral space. Gamut mapping in ICSs instead of the full spectral spacecan alleviate some of the computational burden associated with highdimension, but the problem is still formidable without novel algorithms.This is because, although the dimension of the ICS is lower, it isnevertheless higher than three dimensions. Consequently, use of ICS incomputationally intensive operations such as certain geometricaloperations used in gamut mapping can be a major bottleneck in a spectralcolor management computational pipeline.

SUMMARY

To address the foregoing, the present invention provides for spectralgamut mapping based on a colorimetric gamut mapping.

In one example embodiment of the present invention, a spectral colorvalue in the Interim Connection Space is accessed, the spectral colorvalue is transformed into a colorimetric color value in the color space,and the colorimetric color value is mapped into mapped colorimetriccolor value in a first subspace of the Interim Connection Space. Mappingthe calorimetric color value includes gamut-mapping the calorimetriccolor value using the colorimetric gamut map, followed by identifyingthe color space with the first subspace. An intersection of a spectralgamut in the Interim Connection Space and an affine subspacecharacterized by the mapped calorimetric color value is determined, andthe spectral color value is projected onto the intersection. The firstsubspace is an orthogonal complement of a null space of a transformationfrom the Interim Connection Space to the color space.

The mapping of spectral colors based on a colorimetric gamut map canprovide several advantages. The spectral gamut mapping produced iscontinuous throughout the spectral gamut, while it reduces to thecolorimetric gamut map on the colorimetric level. In addition, most, ifnot all, calorimetric gamut mapping algorithms can be extended tospectral gamut mapping in this manner, and therefore, an immediatearsenal of spectral gamut mapping algorithms can be made available fromthe vast research of colorimetric gamut mapping. Further, the spectralmapping takes place in a simple geometric gamut in the InterimConnection Space, instead of some complicated structure representing thespectral gamut, such as a set of nested three-dimensional gamuts, thusproviding a more intuitive approach to visualize the spectral gamutmapping.

In one example aspect of the invention, a minimum distance projection ofthe calorimetric color value onto the colorimetric gamut is determined.In this case, the minimum distance projection is based on a distance inthe color space.

In one example aspect of the invention, accessing the spectral colorvalue includes determining whether the spectral color value is withinthe spectral gamut, and ending the method without performing thetransforming, the mapping, the determining, or the projecting, if thespectral color value is within the spectral gamut.

In another example aspect of the invention, constructing thecalorimetric gamut includes obtaining spectral measurements of colorsamples, transforming the spectral measurements into the color space,and constructing a convex hull based on the transformed spectralmeasurements.

In yet another example aspect, transforming the spectral measurementsinto the color space includes transforming the spectral measurementsinto the Interim Connection Space, and transforming the transformedspectral measurements in the Interim Connection Space into the colorspace.

In another example aspect, constructing the spectral gamut includesobtaining spectral measurements of color samples, transforming thespectral measurements into the Interim Connection Space, andconstructing a convex hull based on the transformed spectralmeasurements.

In a further example aspect of the invention, projecting the spectralcolor value onto the intersection includes projecting the spectral colorvalue onto a closest point on the intersection. In another aspect,projecting the spectral color value onto the intersection includesperforming an orthogonal projection of the spectral color value onto theaffine subspace, and projecting a result of the orthogonal projectiononto the intersection.

The invention may be embodied in a method, apparatus orcomputer-readable memory medium which stores computer-executable programcode.

This brief summary has been provided so that the nature of the inventionmay be understood quickly. A more complete understanding of theinvention can be obtained by reference to the following detaileddescription in connection with the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of an exemplary computing environment inwhich the present invention may be implemented.

FIG. 2 is a block diagram of an exemplary computer architecture in whichthe present invention may be implemented.

FIG. 3 is a process flowchart of a method of mapping spectral colorsaccording to one example embodiment of the present invention.

FIG. 4 is a representational diagram illustrating various operations andtransformations of a method according to one example embodiment of thepresent invention.

FIG. 5 is a process flowchart of a method of determining gamutsaccording to one example embodiment of the present invention.

FIG. 6 is a process flowchart of another example embodiment of thepresent invention.

FIG. 7 is a process flowchart of a method of facet sectioning accordingto one example embodiment of the present invention.

FIG. 8 is a process flowchart showing more detail of a method of facetsectioning according to one example embodiment of the present invention.

FIG. 9 is a representational diagram of an initial bounding boxaccording to one example embodiment of the present invention.

FIG. 10 is a process flowchart of a method of determining a half-planeintersection according to one example embodiment of the presentinvention.

FIG. 11 is a representational diagram of an example iteration step.

FIG. 12 is a representational diagram of an example workflow in whichmethods according to the present invention can be implemented.

FIG. 13 is a process flowchart of an example method of constructing aconstrained Interim Connection Space (ICS).

FIG. 14 is a representational diagram of an example geometry of aconstrained ICS.

DETAILED DESCRIPTION

FIG. 1 is a perspective view of a representative computing systemincluding a data processing system 40, peripherals and digital devicesthat may be used in connection with the practice of the presentinvention. Data processing system 40 includes host processor 41, whichcomprises a personal computer (hereinafter “PC”). Provided with dataprocessing system 40 are color monitor 43 including display screen 42,keyboard 46 for entering text data and user commands, and pointingdevice 47. Pointing device 47 can comprise a mouse and/or a pen-styleinput device (not shown) for pointing and for manipulating objectsdisplayed on display screen 42.

Data processing system 40 includes a computer-readable memory mediumsuch as computer fixed disk 45 and/or floppy disk drive 44. Floppy diskdrive 44 provides a means whereby data processing system 40 can accessinformation, such as image data, computer-executable process steps,application programs, etc. stored on removable memory media. A similarCD-ROM interface (not shown) may be provided for data processing system40 through which data processing system 40 can access information storedon removable CD-ROM media.

Printer 50 is a printer, such as a color bubble jet printer, which formscolor images on a recording medium such as paper or transparencies orthe like. In addition, digital color scanner 70 is provided for scanningdocuments and images into data processing system 40 and digital colorcamera 60 is provided for sending digital images to data processingsystem 40. Of course, data processing system 40 may acquire digitalimage data from other sources such as a digital video camera, a serveron a local area network, the Internet, etc. (not shown). Aspectrophotometer 80 may be provided for measuring the spectralreflectance of a color sample, and sending the spectral data to dataprocessing system 40.

FIG. 2 is an architecture diagram of an exemplary data processing system40. Data processing system 40 includes a processor 203 coupled to amemory 205 via system bus 207. The processor is also coupled to externalInput/Output (I/O) devices (not shown) via the system bus 207 and an I/Obus 209. A storage device 211 having a computer-readable medium iscoupled to the processor 203 via a storage device controller 213 and theI/O bus 209 and the system bus 207. The storage device 211 is used bythe processor 203 and controller 213 to store and read/write data 215and program instructions 217 used to implement the procedures describedbelow.

The processor 203 may be further coupled to a communications device 219via a communications device controller 221 coupled to the I/O bus 209.The processor 203 uses the communications device 219 to communicate witha network (not shown).

In operation, the processor 203 loads the program instructions 217 fromthe storage device 211 into the memory 205. The processor 203 thenexecutes the loaded program instructions 217 to perform any of themethods described below. Thus, processor 203 operates under the controlof the instructions 217 to perform the methods of the present invention,as described in more detail below.

An example embodiment of the present invention will now be described. Itis noted that this example embodiment utilizes the notion of a“constrained” Interim Connection Space (ICS). A constrained ICS hasfurther properties in addition to the requirements of an ICS. Thesefurther properties are described in the paragraph below. A constructionof a constrained ICS from an ICS that does not have these additionalproperties is described in more detail below in the section entitled“Constrained ICS”. It is noted that if an ICS already possesses theseadditional properties, no further construction is necessary. Inparticular, the example embodiment of the present invention does notrequire or involve the construction of a constrained ICS from anoriginal ICS. It is further noted that the use of particulardescriptors, such as “CW” for a constrained ICS, is in no way intendedto imply that a particular space, operator, transform, value, etc., isrequired, and accordingly, use of particular descriptors does not limitthe present invention in any way.

In general, an ICS CW is specified by its relationship to the fullN-dimensional spectral space, S (where N is typically a number 31 orhigher). More precisely, this means there are two linear transformationsP:S→CW and Q:CW→S. Now suppose we have a full-rank linear transformationΓ:S→X from the full spectral space S to a color space X. A constrainedICS (relative to the map Γ) has the additional property that the spacecan be decomposed into an orthogonal sum of two subspaces C and B,written CW=C⊕B. The subspace B is the null space of the compositetransformation ΓQ. The subspace C can be identified with the color spaceX via a linear transformation. In other words, C is linearly isomorphicto X.

Prior to a detailed description of the present example embodiment, theuse of constrained ICSs in the present embodiment will now be describedin terms of a full spectral space S, a color space X, a map G:X→X, and alinear transformation Γ from S to X.

For example, X could be the CIEXYZ space, and Γ could be the StandardObserver under an illuminant, e.g., CIE Standard Illuminant D₅₀. In thiscase, the map G could be, for example, a gamut mapping on thecalorimetric level. The gamut mapping is in general a nonlineartransformation. In addition, it is noted that construction of G is notnecessarily tied to X, e.g., it may have been constructed in some otherspace related to X, but not X itself. For example, G could have beenconstructed in CIELAB space or a CAM space, which is related to CIEXYZspace by nonlinear transformations.

From the required properties of a constrained ICS CW, X can beidentified with a subspace C, and under this identification, thecomposite map:

is exactly the orthogonal projection of CW onto the subspace C. It isnoted, that while X and C are linearly isomorphic to each other, they ingeneral have different distance metric on them. The metric on C isinherited directly from that on CW, which in turn can be related to ametric on the full spectral space S. On the other hand, the metric on Xmay be completely unrelated. For example if X is the CIEXYZ space, themetric on X could be the Euclidean distance, which is generally notpreferred for judging color difference.

One method according to the present example embodiment includes defininga spectral gamut mapping G that extends G, in the sense that thefollowing diagram is “commutative”:

In other words, if s is an input spectrum in CW, x is its colorimetricvalue under observer map ΓQ, then the spectral gamut mapping G will maps to G(s), which will have colorimetric value G(x).

A more detailed description of the present example embodiment will nowbe presented with reference to FIGS. 3 and 4. FIG. 3 is a processflowchart of a method of mapping spectral colors according to thepresent example embodiment. FIG. 4 is a representational diagram that isused to illustrate various operations and transformations of the methodof FIG. 3 in an Interim Connection Space (ICS) including a subspace B401 and a subspace C 403. Due to the inherent limitations in graphicallydepicting spaces having more than three dimensions, subspace B 401 isillustrated as a two-dimensional space, and subspace C 403 isillustrated as a one-dimensional space. However, this is for the purposeof illustration only. In particular, it is noted that subspaces B and Care typically of higher dimensions.

FIG. 4 also includes a spectral gamut H 405 in the ICS CW, acalorimetric gamut 407 H in the subspace C 403, a map ΓQ 409 from CW tothe subspace C 403, and a gamut mapping 411 G in the subspace C 403.

Referring to FIGS. 3 and 4, in the method of mapping spectral colorsaccording to the present example embodiment, a spectral color value isaccessed (301), for example, as an input spectrum s 413 in CW. In otherembodiments, the input spectrum could be accessed in full spectralspace, S. The colorimetric value of s is calculated (302) via map ΓQ 409by the equation x=ΓQ(s). The colorimetric value x 415 is then mapped(303) by G 411 to obtain c₀=G(x) 417, which should be withincalorimetric gamut H if G is a gamut mapping on X.

If the result G(x) of mapping 303 is not within H, then an additionalprojection can be performed. In particular, a “minimum distance”projection onto H can be performed. The distance used is that of C, notX, however, because distance in C is associated with CW, which in thepresent example embodiment is a better distance to use. The result ofthis minimum distance projection is then set as c₀ (417).

An intersection of H with the affine subspace 419 defined by c=c₀ isdetermined (304). This intersection, or gamut section 421, is the set ofadmissible spectra that are candidates for the selection of a mappedspectral color G(s) 423. Input spectrum s 413 is projected (305) ontogamut section 421. For example, this projection can be performed byfirst projecting (425 a) onto affine subspace 419, then projecting (425b) onto gamut section 421 within affine subspace 419.

In the present example embodiment, the projection (305) is performedbased on a shortest distance criteria. In other words, mapped spectralcolor G(s) 423 is selected from among the admissible spectra that havethe same calorimetric value G(x), i.e., the spectra that lie within thesame gamut section 421, such that the distance between the inputspectrum s and the selected spectral color is minimized. The distancemetric used is a metric of CW.

The method of the present example embodiment can be utilized in manyapplications. For example, in one example application of the presentembodiment, X is the CIEXYZ space, and the gamut mapping G isconstructed from a “minimum distance” mapping on CIELAB or a colorappearance space:

In this regard, the present example embodiment can be directed tomapping spectral colors in an ICS based on a G that is a “minimumdistance mapping” on CIELAB or a color appearance space. This is justone application of the present example embodiment, and one skilled inthe art will understand how the present embodiment can be applied inother applications as well.

It is noted that gamuts H and H are predetermined in this exampleembodiment. However, other embodiments could include the determinationof gamuts H and H. FIG. 5 illustrates one example method of determininggamuts in CW and C, which can be used as H and H, respectively.

Referring to FIG. 5, a gamut H in CW is first constructed by sampling(501) the gamut spectrally. The spectral measurement samples will fallin the full spectral space S. These sampled values are transformed (502)to ICS CW. The values in ICS CW can be used to construct gamuts H and H.To construct gamut H, a convex hull can be constructed in CW(503). Toconstruct H, the values in CW can be projected (504) onto space C, andthen a convex hull can be constructed in C(505).

Another example embodiment of the present invention will now bedescribed with reference to FIG. 6. In this example embodiment,computation of a gamut section is avoided in certain cases in which thecalorimetric gamut mapping G does not change a color if the coloralready lies within the calorimetric gamut. In this case, it might bebeneficial to construct a spectral gamut mapping G that does not changean input spectral color value if the input spectrum is already insidethe spectral gamut H.

In this regard, when a spectral color value s is accessed (601), theprocess checks (602) if s is in H. If H is constructed as a convex hull,then checking (602) can be performed by evaluating inequalities, one foreach hyperplane that bounds the convex hull. If s is in the spectralgamut, no further work is needed, and s is output (603) as the mappedspectral color G(s). At 602, if s is outside H, its colorimetric value cis determined (604) (or equivalently, it is projected onto the subspaceC). The process then checks (605) if c is inside colorimetric gamut H.If c is in H, then the boundary of the gamut section at c is calculated(606). If c is outside H, then c is mapped (607) via gamut mapping G toobtain a mapped c. The process checks (608) if the mapped c is in H. Ifthe mapped c is in H, the boundary of the gamut section at mapped c iscalculated (606).

If mapped c is outside H, an additional projection to gamut H isperformed (609) with respect to the distance in the C subspace, and theboundary of the gamut section is calculated (606) based on the result ofthe projection. It is noted that one reason a colorimetric gamut mappingG might not bring c into H exactly is that gamuts constructed indifferent color spaces can be slightly different. For example, if G isconstructed from a minimum distance mapping in CIELAB, and the gamut inCIELAB is also constructed as a convex hull in that space, that gamutmay not correspond exactly to H, which lies in the C subspace. This isbecause CIELAB is nonlinearly related to CIEXYZ, which in turn impliesthat it is also nonlinearly related to the C subspace.

After the boundary of the gamut section is calculated at 606, thespectral color value is projected (610) onto the boundary to obtain themapped spectral color G(s), and the mapped spectral color is output. Inone benefit of the method of the present example embodiment, a spectralgamut is constructed in the ICS in a more intuitive way, and it ispossible to visualize the spectral gamut as a simple volume in the ICS.In addition, the method produces a spectral gamut mapping that is acontinuous extension of the calorimetric gamut mapping from calorimetricspace to spectral space. Most, if not all, colorimetric gamut mappingalgorithms, as well as gamut mappings in other spaces that are notnecessarily calorimetric, can be extended to a spectral gamut mappingusing this method.

Facet Sectioning

One method of facet sectioning according to an example embodiment willnow be described with reference to FIGS. 7 and 8. This method is onemethod that can be used in calculating a gamut section, such as thecalculation of the gamut section at 606 of FIG. 6. Suppose the dimensionof the ICS is n, and dimension of the gamut H as a convex hull is alson. In particular, the boundary of the spectral gamut H consists of(n−1)-dimensional simplices, or facets. The boundary of the gamutsection is therefore the collection of sections of the facets.

FIG. 7 shows an overview of a facet sectioning method that includes anoptimization to avoid unnecessary calculations involving facets havingempty sections. In particular, the spectral gamut H and the affinesubspace defined by c=c₀ are accessed (701). The facets that woulddefinitely have an empty section are determined using a set ofpreliminary conditions and filtered in the calculation of the gamutsection boundary (702). The following conditions are used in thedetermination. Namely, suppose c₀=(c₁, c₂, c₃) and a facet is defined byvertices p₀, p₁, . . . , p_(n−1). If the projections of p₀, p₁, . . .p_(n−1) onto the c₁-axis are all bounded away from c₁, i.e., one of thefollowing conditions is satisfied:max_(i=0, . . . , n−1)(1st projection of p _(i))<c ₁ormin_(i=0, . . . , n−1)(1st projection of p _(i))<c ₁then this facet will have empty section with the affine space at c=c₀.Projections onto the c₂-axis and the c₃-axis each have a correspondingset of two conditions. These conditions are computationally inexpensiveto check, and by filtering out facets using these conditions, thecalculation of the boundary of the gamut section can be sped up.

The spectral gamut H is sectioned (703). This is done by intersectingthe affine subspace at c=c₀ with each of the facets that have not beenfiltered in the preliminary step. In particular, each boundary facet ofthe convex hull of spectral gamut H is a m-dimensional simplex sittingin the n-dimensional ICS CW, where m=n−1. Denoting the vertices of thesimplex by p₀,p₁, . . . , p_(m), any point x in the simplex can bedescribed by the equations:x=p ₀ +t ₁ v ₁ +t ₂ v ₂ + . . . +t _(m) v _(m)v ₁ =p ₁ −p ₀ ,v ₂ =p ₂ −p ₀ , . . . , v _(m) =p _(m) −p ₀t ₁ , . . . , t _(m)≧0,t ₁ +t ₂ + . . . +t _(n)≦1“Sectioning” refers to the operation of intersecting this simplex with adimension (n−3), or codimension 3, affine subspace, defined by theequationsx₁=c₁x₂=c₂x₃=c₃Generally, the intersection will be a convex set (but not necessarily asimplex) of dimension m−3=n−4.

In principle, the above problem can be addressed by solving a set oflinear equations. However, solving the set of linear equations (whichmay include checking the solution against the inequalities) for eachfacet can potentially lead to problems. For example, the number offacets grows exponentially with n. To illustrate this, a calculation ofthe gamut hull in ICSs of various dimensions was performed for a Canoni9900 inkjet printer, and the following data were obtained:

n 5 6 7 8 #Facets 10244 58882 316630 2803365As n increases, the large number of facets involved can proscribe theuse of many typical routines for solving the linear equations. Solvingthe linear equations entails a transformation of the parameters t₁,t₂, .. . , t_(m) to new parameters so that the new system of equations iseasier to solve. In particular, because the intersection is expected tobe of dimension m−3, there should be m−3 “free” parameters after thetransformation. In one method, solving the linear equations entailsperforming a linear transformation from the parameters t₁,t₂, . . . ,t_(m) to new parameters s₁,s₂, . . . , s_(m), part of which will formthe “free” parameters. It is noted that a large part of thistransformation can be pre-computed for each facet, independently ofc₁,c₂,c₃. This pre-computation could be particularly beneficial whengamut mapping a lot of colors, as is typically done when building aninterpolation lookup table (LUT).

Using matrix notation, the above equations can be written as:

${t = \begin{pmatrix}t_{1} \\t_{2} \\\vdots \\t_{m}\end{pmatrix}},{A = \begin{pmatrix}v_{1} & v_{2} & \cdots & v_{m}\end{pmatrix}}$ x = p₀ + AtA 3×m matrix Ã is obtained by taking the first three rows of A. Recallthat the first three coordinates of the space CW correspond to the Csubspace. SVD is performed on Ã, resulting in the followingdecomposition:Ã=UDV^(T)where U is a 3×3 orthogonal matrix, D is a 3×m “diagonal” matrix of theform:

$D = \begin{pmatrix}d_{1} & 0 & \cdots & \cdots & \cdots & 0 \\0 & d_{2} & 0 & \cdots & \cdots & 0 \\0 & 0 & d_{3} & 0 & \cdots & 0\end{pmatrix}$with d₁≧d₂≧d₃, and V is an m×m orthogonal matrix. If the simplex is in“general position”, then d₃>0, meaning that the projection of thesimplex onto the C subspace is a 3-dimensional simplex. Now define thecoordinate transformation:

${t = {Vs}},{s = \begin{pmatrix}s_{1} \\s_{2} \\\vdots \\s_{m}\end{pmatrix}}$

Under this transformation, it can be shown from the SVD that onlys₁,s₂,s₃ are needed to determine x₁,x₂,x₃. In other words, s₄, . . . ,s_(m) are “free” parameters. Splitting the first three rows/columns ofthe matrices, the following partitioning is obtained:

${A = \begin{pmatrix}\overset{\sim}{A} \\\cdots \\\hat{A}\end{pmatrix}},{x = \begin{pmatrix}\overset{\sim}{x} \\\cdots \\\hat{x}\end{pmatrix}},{p_{0} = \begin{pmatrix}{\overset{\sim}{p}}_{0} \\\cdots \\{\hat{p}}_{0}\end{pmatrix}},{V = \begin{pmatrix}\overset{\sim}{V} & \vdots & \hat{V}\end{pmatrix}},{s = \begin{pmatrix}\overset{\sim}{s} \\\cdots \\\hat{s}\end{pmatrix}}$$\overset{\sim}{x} = {{{\overset{\sim}{p}}_{0} + {\overset{\sim}{A}\overset{\sim}{V}\overset{\sim}{s}} + {\overset{\sim}{A}\hat{V}\hat{s}}} = {{\overset{\sim}{p}}_{0} + {\overset{\sim}{A}\overset{\sim}{V}\overset{\sim}{s}}}}$$\hat{x} = {{\hat{p}}_{0} + {\hat{A}\overset{\sim}{V}\overset{\sim}{s}} + {\hat{A}\hat{V}\hat{s}}}$It is noted that in the above, Ã{circumflex over (V)}ŝ=0 because of thezeroes in D. From this, it follows that for each facet, the followingcan be pre-computed for reuse for different input spectra:B=Ã{tilde over (V)}(3×3 matrix) and its inverse B ⁻¹,C=Â{circumflex over (V)}(n−3×m−3 matrix), and if n≧6, its Moore-Penroseinverse C⁺, andH=Â{tilde over (V)}.

Note that B is invertible because of the assumption that d₃>0. Thepseudo-inverse C⁺ is used in the calculation of the closest point of thesimplex section from a given point. For n≦5, the simplex section iseither a point or a line segment, and a direct calculation will be usedinstead.

With these pre-computed quantities, solving the equations {tilde over(x)}=c=(c₁,c₂,c₃)^(T) for each facet involves the following steps.

First, the constrained parameters are computed via the equation {tildeover (s)}=B⁻¹(c−{tilde over (p)}₀). This is followed by the computationof the new “origin” in the n−3 dimensional {tilde over (x)}-space viathe equation q₀={circumflex over (p)}₀+H{tilde over (s)}. The m−3 freeparameters ŝ parameterize an affine subspace inside the n−3 dimensional{circumflex over (x)}-space by the following equation:{circumflex over (x)}=q ₀ +CŝHowever, because the simplex is defined by a set of inequalities, ŝ isnot completely free, but is also constrained by similar inequalities.Using the equation t=Vs and writing V=(V_(ij)), these inequalities are:

$\begin{matrix}{{{\sum\limits_{j = 4}^{m}{V_{1j}s_{j}}} + k_{1}} \geq 0} \\\vdots \\{{{\sum\limits_{j = 4}^{m}{V_{mj}s_{j}}} + k_{m}} \geq 0} \\{{{\sum\limits_{i = 1}^{m}{\sum\limits_{j = 4}^{m}{V_{ij}s_{j}}}} + k_{0}} \leq 1}\end{matrix}$

-   -   where the constants are defined by

$\begin{matrix}{k_{1} = {{V_{11}s_{1}} + {V_{12}s_{2}} + {V_{13}s_{3}}}} \\\vdots \\{k_{m} = {{V_{m\; 1}s_{1}} + {V_{m\; 2}s_{2}} + {V_{m\; 3}s_{3}}}} \\{k_{0} = {\sum\limits_{i = 1}^{m}{\sum\limits_{j = 1}^{3}{V_{ij}s_{j}}}}}\end{matrix}$These inequalities define a convex set in ŝ-space, which in turn definesa convex set in {circumflex over (x)}-space via the aboveparameterization.

To sum up, through a series of linear transformations that can bepre-computed for each facet, computation of a facet section is reducedto the problem of computing a convex set in the m−3 dimensional ŝ-spacedefined by the above inequalities. Example embodiment of thiscomputation for the first two low dimensions n, n=5(m=4) and n=6(m=5)will be described next.

The n=5(m=4) case will now be described. In this case, the facet sectionis a 1-dimensional convex set. It must therefore be a line segment.Accordingly, a solution can be obtained by determining the correspondingclosed interval in the 1-dimensional s₄-space that would give thisintersection via the parametrization {circumflex over (x)}=q₀+Cŝ. In thepresent case, the above inequalities simplify to:

$\begin{matrix}{{{V_{14}s_{4}} + k_{1}} \geq 0} \\\vdots \\{{{V_{44}s_{4}} + k_{4}} \geq 0} \\{{{s_{4}{\sum\limits_{i = 1}^{4}V_{i\; 4}}} + k_{0}} \leq 1}\end{matrix}$

Each of these inequalities can be cast into the form αs₄+β≧0, so thateach either gives a lower bound s₄≧−β/α if α>0 or an upper bound s₄≦−β/αif α<0. If α=0, then the inequality is impossible if β<0, i.e., theintersection is empty. In general, the collection of all upper/lowerbounds either gives an impossible set of inequalities, leading to theconclusion that the intersection is empty, or gives a finite closedinterval in s₄-space.

FIG. 8 is a more detailed flowchart showing the processes performed inone example embodiment of sectioning 703. An upper bound is initializedto +INF and a lower bound to −INF (801). +INF and −INF are systemspecific parameters. For example, in the IEEE double precision floatingpoint system, ±INF are approximately ±1.7976931348623157 ×10³⁰⁸. Aniteration index i is set (802) to run from zero to 4. The currentinequality is set (803) as: α_(i)s₄+≧0. The process determines (804)whether α_(i)>0. If α_(i)>0, then the lower bound is set (805) equal tothe maximum of the lower bound and −β_(i)/α_(i), and the iteration isadvanced (806) by incrementing the iteration step i and returning to 803(if the current i<4), or the process proceeds to 807 (if the currenti=4).

At 804, if α_(i)≦0 then the process determines (808) whether α_(i)=0. Ifα_(i)=0. then the process determines (809) whether β_(i)<0. If β_(i)<0then the intersection is determined (810) as empty, and the process ends(811).

At 809, if β_(i)≧0 then the process is iterated (806). At 808, ifα_(i)<0 then the upper bound is set (812) equal to the minimum of theupper bound and −β_(i)/α_(i), and the process is iterated (806).

At 807, the upper bound is compared to the lower bound. If the upperbound is less than the lower bound, then the intersection is determined(813) as empty, and the process ends (811). If the upper bound is notless than the lower bound at 807, then the values of the upper bound andthe lower bound are output (814), and the process ends (811).

If the process determines that the intersection is non-empty, and theoutput at 814 is [s₄ ^(min), s₄ ^(min)], the closest point of this linesegment from a given point p in the 5-dimensional ICS can be determinedby computing the closest point of this line segment from {circumflexover (p)} in the 2-dimensional {circumflex over (x)}-space using knowntechniques. For example, if q₁=q₀+Cs₄ ^(min), q₂=q₀+Cs₄ ^(max), theclosest point on the line segment is given by:

$q = {{q_{1} + {{\lambda^{*}\left( {q_{2} - q_{1}} \right)}\mspace{14mu}{where}\mspace{14mu}\lambda^{*}}} = {{\max\left( {0,{\min\left( {1,\frac{\left( {\hat{p} - q_{1}} \right) \cdot \left( {q_{2} - q_{1}} \right)}{\left( {q_{2} - q_{1}} \right) \cdot \left( {q_{2} - q_{1}} \right)}} \right)}} \right)}.}}$

Finally, it is noted that in this simple case, determination of thepseudo-inverse C⁺ not necessary, rather, it implicitly appears in theabove closed form solution.

The n=6(m=5) case will now be described. In this case, the facet sectionis a 2-dimensional convex set. Through the parametrization {circumflexover (x)}=q₀+Cŝ, there is a corresponding convex set in the2-dimensional (s₄, s₅)-space defined by the following six inequalities:

$\begin{matrix}{{{V_{14}s_{4}} + {V_{15}s_{5}} + k_{1}} \geq 0} \\\vdots \\{{{V_{54}s_{4}} + {V_{55}s_{5}} + k_{5}} \geq 0} \\{{{s_{4}{\sum\limits_{i = 1}^{5}V_{i\; 4}}} + {s_{5}{\sum\limits_{i = 1}^{5}V_{i\; 5}}} + k_{0}} \leq 1}\end{matrix}$Again, each inequality is of the form α_(i)s₄+β_(i)s₅+γ_(i)≧0, i=0, 1, .. . , 5. To compute the closest point of facet section from a givenpoint p in the 6-dimensional ICS, we first project p to {circumflex over(p)} in the 3-dimensional {circumflex over (x)}-space, then project{circumflex over (p)} to the 2-dimensional facet section within the{circumflex over (x)}-space. The projection of {circumflex over (p)}onto the 2-dimensional affine subspace containing the facet section isgiven by:ŝ=C ⁺({circumflex over (p)}−q ₀)

The projection ŝ=(s₄,s₅) is then tested against the six inequalities. Ifall the inequalities are satisfied, then the projection is also insidethe facet section, and the closest point is therefore obtained. If atleast one of the inequalities is not satisfied, then the closest pointoccurs on the boundary of the facet section. In this case, the verticesof the facet section need to be computed. In other words, we need tocompute the intersection of the half planes defined by the inequalities.

One method of computing a half-plane intersection usesdivide-and-conquer approach. However, that algorithm requires a point inthe intersection to start. In other words, a separate algorithm, such asa linear program solver, is required to find a solution first, if thereis any. In the present example case, there is no a priori knowledge ofsuch a solution, or the knowledge that one exists. On the other hand, itinvolves only six half-planes/inequalities and the intersection is knownto be bounded. In this case, one example method using a direct (notdivide-and-conquer) approach that includes determining if theintersection is empty or not, and if not, computing the vertices, all atthe same time, will now be described.

An initial bounding box in (s₄,s₅)-space can be obtained from therelationship s=V^(T)t. The unit vectors in t-space span the facet byconstruction, and when they are transformed into the s-space andprojected onto the (s₄,s₅)-subspace, they determine a bounding box. Inother words, the bounding box can be taken as:s₄ ^(min)≦s₄≦s₄ ^(max)s₅ ^(min)≦s₅≦s₅ ^(max)wheres₄ ^(min)=min_(j=1, . . . 5)V_(j4)s₄ ^(max)=max_(j=1, . . . 5)V_(j4)s₅ ^(min)=min_(j=1, . . . 5)V_(j5)s₅ ^(max)=max_(j=1, . . . 5)V_(j5)An example initial bounding box is shown in FIG. 9. This initialbounding box is successively intersected by a half-plane defined by theinequality α_(i)s₄+β_(i)s₅+γ_(i)≧0.

FIG. 10 shows one method of determining a half-plane intersectionaccording to one example embodiment of the present invention. In thisexample case, the polygon to be intersected at a certain point has Kvertices v₁, . . . , v_(K).

The polygon P is set (1001) to the initial bounding box, such as the onedescribed above, and a half plane H is selected (1002). The vertices v₁,. . . v_(K) of the current polygon P, and a boundary line L of H, areaccessed (1003). A first index k₁ is determined (1004) such that v_(k) ₁is outside of H.

If (1005) first index k₁ does not exist, then the whole polygon isinside the half-plane. In other words, intersection of the polygon withthe half-plane is the polygon itself. The next half-plane (1006) is thenaccessed, and the process is iterated (1002) using the next half-plane.If k₁ exists, then the last index k₂ is determined (1007) such thatv_(k) ₂ is outside of H. The value of k₁ is compared (1008) to 1. Ifk₁>1, then a first new vertexw ₁ =L∩ v_(k) ₁ ⁻¹ v _(k) ₁is determined (1009). The value of k₂ is now compared (1010) to K. If k₂is equal to K, then a second new vertexw₂=L∩ v_(k) ₂ v₁is determined (1011), polygon P is updated (1012) with vertices v₁, . .. , v_(k) ₁ ⁻¹, w₁, w₂, and the process proceeds to 1006. On the otherhand, if k₂ is less than K at 1010, then a second new vertexw ₂ =L∩ v_(k) ₂ v _(k) ₂ ₊₁is determined (1013), polygon P is updated (1014) with verticesv₁, . . . v_(k) ₁ ⁻¹, w₁, w₂,v_(k) ₂ _(+1,)v_(k), and the processproceeds to 1006.

Referring again to 1008, if k₁ is equal to 1, the value of k₂ iscompared (1015) to K. If k₂ is equal to K, then every vertex is outsideof H. The intersection is determined (1016) to be empty, and the processends (1017). On the other hand, if k₂ is less than K, then the lastindex k₃ is determined (1018) such that V_(k) ₃ is inside of H, and afirst new vertexw ₁ =L∩ v_(k) ₂ v _(k) ₂ ₊₁is determined (1019). Next, k₃ is compared (1020) to K. If k₃ is equalto K, then a second new vertexw₂=L∩ v_(k) ₃ v₁is determined (1021), and the process proceeds to 1023. On the otherhand, if k₃ is less than K, then a second new vertexw ₂ =L∩ v_(k) ₃ v _(k) ₃ ₊₁is determined (1022), and the process proceeds to 1023.

At 1023, polygon P is updated with vertices v_(k) ₂ ₊₁, . . . , v_(k) ₃, w₂, w₁, and a next iteration is performed with a next half-plane(1006). At 1006, if there are no remaining half-planes, the process ends(1017).

When the above process is iterated through all six inequalities, theresult is either that the intersection is empty, or an ordered list ofvertices that lie on the boundary of the facet section. In the lattercase, the closest point to {circumflex over (p)} is the closest point ona line segment connecting two consecutive vertices.

FIG. 11 illustrates an example iteration step in the construction of thefacet section.

FIG. 12 shows one example embodiment of the present invention. Inparticular, FIG. 12 shows an example printer workflow utilizing aspectral gamut mapping generated by methods of the present invention.

In the present example workflow of FIG. 12, source image data 1201 froma source multi-spectral device, such as a multi-spectral camera 1203, isconverted into spectral reflectance data 1207 using a device transform,such as a camera model 1205. Spectral reflectance data 1207 istransformed into ICS data 1211 using a linear transform 1209 provided bythe ICS. A spectral gamut-mapping 1213, such as one generated by methodsof the present invention, is performed on ICS data 1211 to obtaingamut-mapped ICS data 1215. An inverse printer model 1217 is applied togamut-mapped ICS data 1215, and the resulting data is sent to amulti-ink output printer 1219, for example, which produces a hard copy1221 of image data 1201.

Elements 1205 to 1217 of FIG. 12 define a color management module (CMM)1223, which can be implemented, for example, as part of programinstructions 217 executed by data processing system 40 of FIG. 2.

Constrained ICS

One example construction of a constrained ICS will now be described withreference to a full-rank linear transformation Γ:S→X from the fullspectral space S to a color space X and an ICS W that does not alreadypossess the additional properties of a constrained ICS.

Referring now to FIG. 13, an n-dimensional ICS W in an N-dimensionalfull spectral space S is accessed (1301). The ICS W includes associatedlinear transformations to and from the full spectral space S:P:S→WQ:W→S

A “constraining” linear map Γ is accessed (1302). The linear map Γ:S→Xgoes from S to a k-dimensional space X. The rank of Γ is k in thisexample embodiment. For example, X can be the 3-dimensional CIEXYZspace, and Γ can be the operation of spectral integration of thespectral reflectance with the SPD of a chosen illuminant.

From the sequence of linear transformations,

an overall linear transformation from W to X, which is represented as ak×n matrix, M_(Γ), is determined (1303). W is decomposed (1304) into adirect sum of two orthogonal subspaces: a subspace C of “constrainedvariables”; and a subspace B of “free variables”. Because the rank of Γis k, which is also the dimension of X in this example embodiment, thenthe dimension of C is also k, and the dimension of B is n−k. The nullspace of matrix M_(Γ) is the subspace B. In other words,B={pεW|M _(Γ) p=0}Subspace C is the orthogonal complement of B in W. Note that thedetermination of C depends on the inner product on W, whereas thedetermination of B does not.

One example method of decomposing W into subspace B and subspace Cincludes performing an orthogonal transformation on space W, i.e.,change of coordinates. An orthogonal transformation can be obtained, forexample, using eigenvalue analysis, such as SVD. Under the transformedcoordinate system, the projections onto B and C are projections onto thecoordinate planes of the transformed space, denoted CW.

In the present example embodiment, the orthogonal transformation on W isperformed through SVD on the matrix M_(Γ). Namely:M_(Γ)=U_(Γ)D_(Γ)V_(Γ) ^(T)where U_(Γ) and V_(Γ) are k×k, resp. n×n orthogonal matrices, and D_(Γ)is an k×n “diagonal” matrix of singular values sorted in non-increasingorder and is of the form:D _(Γ)=({tilde over (D)} _(Γ)

0)where {tilde over (D)}_(Γ) is a k×k diagonal matrix.

Subspace B and subspace C are used to generate (1305) a constrained ICSCW. In particular, V_(Γ) ^(T) is the desired orthogonal transformationfor space W, because under this coordinate transformation,

${\begin{pmatrix}c_{1} \\\vdots \\c_{k} \\b_{1} \\\vdots \\b_{n - k}\end{pmatrix} = {V_{\Gamma}^{T}\begin{pmatrix}p_{1} \\\vdots \\p_{n}\end{pmatrix}}},$so that M_(Γ)p=U_(Γ){tilde over (D)}_(Γ)(c₁ . . . c_(k))^(T). In otherwords, only the first k coordinates are used to determine the output ofM_(Γ), and they provide the coordinates for the subspace C, whereas b₁,. . . , b_(n−k) provide coordinates for the subspace B.

This example construction of a constrained ICS, CW, results in thefollowing equations that give the transformations going to and from Sand X.From S to CW:x

V_(Γ) ^(T)Px=cΓbFrom S to CW to S:c⊕b

QV_(Γ)(c⊕b)The subspace C can be identified with X because they are related by anon-singular linear transformation, i.e., a non-singular square matrixof dimension k.C→Xc

U_(Γ){tilde over (D)}_(Γ)cSince Γ is assumed to have full rank, the singular values in Dr are allnon-zero, so that it is invertible.X→Cξ

{tilde over (D)}_(Γ) ⁻¹U_(Γ) ^(T)ξ

FIG. 14 is a graph of an example geometry of a constrained ICS. Theexample geometry is primarily for illustrative purposes, and shows atwo-dimensional C subspace and a one-dimensional B subspace. Thenotation c⊕b is used to denote a point in the ICS that has coordinates cand b respectively in the C and B subspace.

Although the invention has been described in certain specificembodiments, many additional modifications and variations would beapparent to those skilled in the art. It is therefore to be understoodthat this invention may be practiced otherwise than as specificallydescribed. Thus, the present embodiments of the invention should beconsidered in all respects as illustrative and not restrictive, thescope of the invention to be determined by any claims supportable bythis application and the claims' equivalents rather than the foregoingdescription.

1. A method for mapping spectral colors in an Interim Connection Spaceof a full spectral space based on a colorimetric gamut map in a colorspace, the method comprising: accessing a spectral color value in theInterim Connection Space; transforming the spectral color value into acolorimetric color value in the color space; mapping, by using aprocessor, the colorimetric color value into mapped colorimetric colorvalue in a first subspace of the Interim Connection Space, whereinmapping the colorimetric color value comprises gamut-mapping thecolorimetric color value using the colorimetric gamut map, followed byidentifying the color space with the first subspace; determining anintersection of a spectral gamut in the Interim Connection Space and anaffine subspace characterized by the mapped colorimetric color value;and projecting the spectral color value onto the intersection, whereinthe first subspace is an orthogonal complement of a null space of atransformation from the Interim Connection Space to the color space. 2.The method of claim 1, wherein the colorimetric gamut map comprises:mapping the colorimetric color value onto a colorimetric gamut in thecolor space.
 3. The method of claim 2, wherein mapping the colorimetriccolor value onto a colorimetric gamut in the color space comprises:determining a minimum distance projection of the colorimetric colorvalue onto the colorimetric gamut, wherein the minimum distanceprojection is based on a distance in the color space.
 4. The method ofclaim 3, wherein accessing the spectral color value includes:determining whether the spectral color value is within the spectralgamut; and ending the method without performing the transforming, themapping, the determining, or the projecting, if the spectral color valueis within the spectral gamut.
 5. The method of claim 2, furthercomprising constructing the colorimetric gamut, wherein constructing thecolorimetric gamut comprises: obtaining spectral measurements of colorsamples; transforming the spectral measurements into the color space;and constructing a convex hull based on the transformed spectralmeasurements.
 6. The method of claim 5, wherein transforming thespectral measurements into the color space comprises: transforming thespectral measurements into the Interim Connection Space; andtransforming the transformed spectral measurements in the InterimConnection Space into the color space.
 7. The method of claim 1, furthercomprising constructing the spectral gamut, wherein constructing thespectral gamut comprises: obtaining spectral measurements of colorsamples; transforming the spectral measurements into the InterimConnection Space; and constructing a convex hull based on thetransformed spectral measurements.
 8. The method of claim 1, whereinprojecting the spectral color value onto the intersection comprises:projecting the spectral color value onto a closest point on theintersection.
 9. The method of claim 1, wherein projecting the spectralcolor value onto the intersection comprises: performing an orthogonalprojection of the spectral color value onto the affine subspace; andprojecting a result of the orthogonal projection onto the intersection.10. An apparatus for mapping spectral colors in an Interim ConnectionSpace of a full spectral space based on a colorimetric gamut map in acolor space, the apparatus comprising: an accessing unit constructed toaccess a spectral color value in the Interim Connection Space; atransformation unit constructed to transform the spectral color valueinto a colorimetric color value in the color space; a mapping unitconstructed to map the colorimetric color value into mapped colorimetriccolor value in a first subspace of the Interim Connection Space, whereinmapping the colorimetric color value comprises gamut-mapping thecolorimetric color value using the colorimetric gamut map, followed byidentifying the color space with the first subspace; a firstdetermination unit constructed to determine an intersection of aspectral gamut in the Interim Connection Space and an affine subspacecharacterized by the mapped colorimetric color value; and a projectionunit constructed to project the spectral color value onto theintersection, wherein the first subspace is an orthogonal complement ofa null space of a transformation from the Interim Connection Space tothe color space wherein the forgoing units are implemented by aprocessor.
 11. The apparatus of claim 10, wherein the colorimetric gamutmap comprises: mapping the colorimetric color value onto a colorimetricgamut in the color space.
 12. The apparatus of claim 11, wherein mappingthe colorimetric color value onto a colorimetric gamut in the colorspace comprises: determining a minimum distance projection of thecolorimetric color value onto the colorimetric gamut, wherein theminimum distance projection is based on a distance in the color space.13. The apparatus of claim 12, wherein the access unit is furtherconstructed to determine whether the spectral color value is within thespectral gamut; wherein the spectral color is mapped without performingthe transforming, the mapping, the determining, or the projecting, ifthe spectral color value is within the spectral gamut.
 14. The apparatusof claim 11, further comprising: a colorimetric gamut constructing unitthat constructs the colorimetric gamut, wherein the gamut constructingunit obtains spectral measurements of color samples, transforms thespectral measurements into the color space, and constructs a convex hullbased on the transformed spectral measurements.
 15. The apparatus ofclaim 14, wherein transforming of the spectral measurements into thecolor space comprises: transforming the spectral measurements into theInterim Connection Space; and transforming the transformed spectralmeasurements in the Interim Connection Space into the color space. 16.The apparatus of claim 10, further comprising: a spectral gamutconstructing unit that constructs the spectral gamut, wherein thespectral gamut constructing unit obtains spectral measurements of colorsamples, transforms the spectral measurements into the InterimConnection Space, and constructs a convex hull based on the transformedspectral measurements.
 17. The apparatus of claim 10, wherein projectingof the spectral color value onto the intersection comprises: projectingthe spectral color value onto a closest point on the intersection. 18.The apparatus of claim 10, wherein projecting of the spectral colorvalue onto the intersection comprises: performing an orthogonalprojection of the spectral color value onto the affine subspace; andprojecting a result of the orthogonal projection onto the intersection.19. Computer-executable instructions stored on a computer-readablememory medium, the computer-executable instructions executable to mapspectral colors in an Interim Connection Space of a full spectral spacebased on a colorimetric gamut map in a color space, saidcomputer-executable process steps comprising process steps executable toperform a method according to any of claims 1 to
 9. 20. An apparatus tomap spectral colors in an Interim Connection Space of a full spectralspace based on a colorimetric gamut map in a color space, the apparatuscomprising: a program memory that stores process steps executable toperform a method according to any of claims 1 to 9; and a processorcoupled to the program memory that executes the process steps stored insaid program memory.